using System;
using System.Collections.Generic;
using System.Text;
using csharp.rad.general;

namespace csharp.rad.sisponto
{
   public class HorarioDisc
   {
      private Database bd;
      public Database.Result result = new Database.Result();
      private String h_msgErro;
      private int h_id_horario_disc;
      private int h_id_disc;
      private int h_ano;
      private int h_semestre;
      private int h_dia_semana;
      private TimeSpan h_inicio;
      private TimeSpan h_fim;

      public HorarioDisc(Database bancoDeDados)
      {
         bd = bancoDeDados;
      }

      public String msgErro
      {
         set { h_msgErro = value; }
         get { return h_msgErro; }
      }
      public int id_horario_disc
      {
         set { h_id_horario_disc = value; }
         get { return h_id_horario_disc; }
      }
      public int id_disc
      {
         set { h_id_disc = value; }
         get { return h_id_disc; }
      }
      public int ano
      {
         set { h_ano = value; }
         get { return h_ano; }
      }
      public int semestre
      {
         set { h_semestre = value; }
         get { return h_semestre; }
      }
      public int dia_semana
      {
         set { h_dia_semana = value; }
         get { return h_dia_semana; }
      }
      public TimeSpan inicio
      {
         set { h_inicio = value; }
         get { return h_inicio; }
      }
      public TimeSpan fim
      {
         set { h_fim = value; }
         get { return h_fim; }
      }

      public int Inserir()
      {
         String _sql;

         _sql = "INSERT INTO horario_disc (id_disc, ano, semestre, dia_semana, inicio, fim) "
               + " VALUES (" + h_id_disc + "," + h_ano + "," + h_semestre
               + "," + h_dia_semana + ",'" + h_inicio + "','" + h_fim + "')";

         result = bd.ExecuteCommand(_sql, Database.doNotUseTransaction);
         if (result.Status == Database.Status.Failed)
         {
            h_msgErro = result.ErrorMessage;
            return 0;
         }
         return 1;
      }

      public int procura()
      {
         string _sql = "SELECT id_horario_disc "
                    + "FROM horario_disc "
                    + "WHERE (id_disc = " + h_id_disc + " AND "
                           + "ano = " + h_ano + " AND "
                           + "semestre = " + h_semestre + " AND "
                           + "dia_semana = " + h_dia_semana + " AND "
                           + "inicio = '" + h_inicio + "' AND "
                           + "fim = '" + h_fim + "') ";

         object ret = bd.ExecuteScalar(_sql, out result);

         if (ret != null)
            return (Convert.ToInt32(ret.ToString()));
         else if (result.Status != Database.Status.Failed)
            return 0;
         else
            return -1;
      }

      public int gravar()
      {
         String _sql;

         _sql = "UPDATE horario_disc SET id_disc= " + h_id_disc
               + ", ano= " + h_ano
               + ", semestre= " + h_semestre
               + ", dia_semana= " + h_dia_semana
               + ", inicio= " + h_inicio
               + ", fim= " + h_fim
             + "WHERE id_horario_disc = " + h_id_horario_disc;

         result = bd.ExecuteCommand(_sql, Database.doNotUseTransaction);
         if (result.Status == Database.Status.Failed)
         {
            h_msgErro = result.ErrorMessage;
            return 0;
         }
         return 1;
      }
   }
}
